// package com.ruoyi.business.task;
//
// import com.ruoyi.business.config.OsCheck;
// import com.ruoyi.business.domain.Video;
// import com.ruoyi.business.service.IDeviceAccountDataService;
// import com.ruoyi.business.service.IStIncomeTotalService;
// import com.ruoyi.business.service.IVideoService;
// import com.ruoyi.business.service.OpenService;
// import lombok.extern.slf4j.Slf4j;
// import org.springframework.stereotype.Component;
//
// import javax.annotation.Resource;
// import java.util.List;
//
// @Component("businessTask")
// @Slf4j
// public class BusinessTask {
//     @Resource
//     private IVideoService videoService;
//     @Resource
//     private OpenService openService;
//     @Resource
//     private IDeviceAccountDataService deviceAccountDataService;
//     @Resource
//     private IStIncomeTotalService stIncomeTotalService;
//
//     /**
//      * 从第0秒开始每隔30秒执行1次, 查询状态为待处理, 并且失败次数小于3次的视频
//      * 0/30 * * * * ?
//      */
//     public void videoConfirm() throws Exception {
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os == OsCheck.OS.LINUX) {
//             log.info("当前系统是linux, 不执行videoConfirm");
//             return;
//         }
//         if (os == OsCheck.OS.MAC) {
//             log.info("当前系统是mac, 不执行videoConfirm");
//             return;
//         }
//         log.info("videoConfirm 被执行......");
//         List<Video> list = videoService.getTodoVideo();
//         if (list != null && !list.isEmpty()) {
//             openService.processVideo(list);
//         }
//     }
//
//     /**
//      * 上传视频到服务器
//      *
//      * @throws Exception
//      */
//     public void ftpUpload() throws Exception {
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os == OsCheck.OS.LINUX) {
//             log.info("当前系统是linux, 不执行ftpUpload");
//             return;
//         }
//         if (os == OsCheck.OS.MAC) {
//             log.info("当前系统是mac, 不执行ftpUpload");
//             return;
//         }
//         log.info("uploadVideo 被执行......");
//         List<Video> list = videoService.getFtpUploadVideo();
//         if (list != null && !list.isEmpty()) {
//             openService.ftpUpload(list);
//         } else {
//             log.info("没有需要上传的视频");
//         }
//     }
//
//     /**
//      * 更新账号是否轮训发状态
//      *
//      * @throws Exception
//      */
//     public void updateAccountSendFlag() {
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os != OsCheck.OS.LINUX) {
//             log.info("当前系统不是linux, 不执行updateAccountSendFlag");
//             return;
//         }
//         log.info("updateAccountSendFlag 被执行......");
//         deviceAccountDataService.updateAccountSendFlag();
//     }
//
//     /**
//      * 定时发布视频
//      * 每天18点38执行
//      * 0 38 18 * * ?
//      */
//     public void publishVideo() {
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os != OsCheck.OS.LINUX) {
//             log.info("当前系统不是linux, 不执行publishVideo");
//             return;
//         }
//         log.info("publishVideo 被执行......");
//         openService.publishVideo();
//     }
//
//     /**
//      * 定时同步收益
//      * 每天12点, 15点, 18点, 21点, 23点执行
//      * 0 0 12,15,18,21,23 * * ?
//      */
//     public void syncIncome() {
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os != OsCheck.OS.LINUX) {
//             log.info("当前系统不是linux, 不执行syncIncome");
//             return;
//         }
//         log.info("syncIncome 被执行......");
//         stIncomeTotalService.syncYesterdayIncome();
//     }
//
//     public void testRunPublishTemplate(){
//         // 判断系统是linux还是其它
//         OsCheck.OS os = OsCheck.getOperatingSystemType();
//         if (os != OsCheck.OS.LINUX) {
//             log.info("当前系统不是linux, 不执行publishVideo");
//             return;
//         }
//         log.info("testRunPublishTemplate 被执行......");
//         openService.testRunPublishTemplate();
//     }
// }
